DrScheme: A Pedagogic Programming Environment for Scheme
نویسندگان
چکیده
Teaching introductory computing courses with Scheme el evates the intellectual level of the course and thus makes the subject more appealing to students with scienti c interests Unfortunately the poor quality of the available programming environments negates many of the pedagogic advantages To overcome this problem we have devel oped DrScheme a comprehensive programming environment for Scheme It fully integrates a graphics enriched editor a multi lingual parser that can process a hierarchy of syntactically restrictive variants of Scheme a functional read eval print loop and an algebraically sensible printer The environment catches the typical syntactic mistakes of beginners and pinpoints the exact source location of run time exceptions DrScheme also provides an algebraic stepper a syntax checker and a static debugger The rst reduces Scheme programs including programs with assignment and control e ects to values and e ects The tool is useful for explaining the semantics of linguistic facilities and for studying the behavior of small programs The syntax checker annotates programs with font and color changes based on the syntactic structure of the pro gram It also draws arrows on demand that point from bound to binding occurrences of identi ers The static debugger roughly speaking pro vides a type inference system with explanatory capabilities Preliminary experience with the environment shows that Rice University students nd it helpful and that they greatly prefer it to shell or Emacs based systems
منابع مشابه
DrScheme: a programming environment for Scheme
DrScheme is a programming environment for Scheme. It fully integrates a graphicsenriched editor, a parser for multiple variants of Scheme, a functional read-eval-print loop, and an algebraic printer. The environment is especially useful for students, because it has a tower of syntactically restricted variants of Scheme that are designed to catch typical student mistakes and explain them in term...
متن کاملFrom Python to PLT Scheme
This paper describes an experimental embedding of Python into DrScheme. The core of the system is a compiler, which translates Python programs into equivalent MzScheme programs, and a runtime system to model the Python environment. The generated MzScheme code may be evaluated or used by DrScheme tools, giving Python programmers access to the DrScheme development suite while writing in their fav...
متن کاملFrom Macros to Reusable Generative Programming
Generative programming is widely used both to develop new programming languages and to extend existing ones with domain-speci c sub-languages. This paper describes McMicMac, a framework for generative programming. McMicMac uses tree-transforming macros as language speci cations, and enhances them with inherited and synthesized attributes. The enhanced transformers can describe general compilati...
متن کاملEmbedding Dynamic Dataflow in a Call-by-Value Language
This paper describes FrTime, an extension of Scheme designed for writing interactive applications. Inspired by functional reactive programming, the language embeds dynamic dataflow within a call-by-value functional language. The essence of the embedding is to make program expressions evaluate to nodes in a dataflow graph. This strategy eases importation of legacy code and permits incremental pr...
متن کاملLittle Languages and their Programming Environments Rice University Technical Report TR 99 - 350
Programmers constantly design, implement, and program in little languages. Two different approaches to the implementation of little languages have evolved. One emphasizes the design of little languages from scratch, using conventional technology to implement interpreters and compilers. The other advances the idea of extending a general-purpose host language; that is, the little language shares ...
متن کامل